package controllers;

import java.sql.Date;
import java.sql.Timestamp;
import java.util.List;

import models.*;
import play.*;
import play.mvc.*;
import play.data.*;
import views.html.*;

public class AppelsOffres extends Controller {
	
	public static Result add() {
        final Form<AppelOffre> appeloffreForm = form(AppelOffre.class).bindFromRequest(); 

        if (appeloffreForm.hasErrors()) { // <--- le code modifié, ça commence ici !

            flash("error", "Il faut saisir autre chose !");

        } else { // <--- on n'enregistre que si tout va bien
            final AppelOffre appeloffre = appeloffreForm.get();
            appeloffre.save();    
        }

        return redirect(routes.AppelsOffres.visualiserListe());

    }
	
    public static Result nouvelAppelOffre() {
    	Timestamp st = new Timestamp(System.currentTimeMillis());
    	Date date_jour = new Date(st.getTime());
    	return ok(formappelsoffres.render(
                Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),
                Etat.find.orderBy("libelle_Etat").orderBy("id_Etat").findList(),date_jour
                
            ));
    }
    
    public static Result visualiserListe() {
    	return ok(listeappelsoffres.render(
    			AppelOffre.listeAppelsOffresEnCours(),
    			AppelOffre.listeAppelsOffresArchives(),
                Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()
            ));
    }
    
    public static Result archive(Long id) {
    	AppelOffre.find.ref(id).changerEtat(2); //2 correspond à l'état "Archive"
    	return redirect(routes.AppelsOffres.visualiserListe());
    }
    
}